/**
 * @用途
 * @author 黄敏
 * @创建时间 2025-07-14 16:17
 **/
import type { ViteUserConfig } from 'vitest/config'

export const vitestConfig: ViteUserConfig['test'] = {
  // 测试环境配置
  environment: 'jsdom', // 使用 jsdom 模拟浏览器环境
  server: {
    deps: {
      inline: ['vuetify']
    }
  },

  // 全局设置
  globals: true, // 启用全局测试 API，无需导入 describe, it, expect 等

  // CSS 处理 - 在测试中忽略 CSS 文件
  css: false,

  // 排除的文件
  exclude: ['node_modules', 'dist', 'release', 'auto', 'library', 'e2e', 'e2e-electron'],

  // 设置文件
  setupFiles: ['./tests/setup.ts'],

  // 覆盖率配置
  coverage: {
    provider: 'v8',
    reporter: ['text', 'json', 'html'],
    exclude: [
      'node_modules/',
      'dist/',
      'release/',
      'auto/',
      'library/',
      'tests/',
      'e2e/',
      'e2e-electron/',
      '**/__tests__/**',
      '**/*.d.ts',
      '**/*.config.*',
      '**/vite/**'
    ]
  },

  // 测试超时设置
  testTimeout: 10_000,

  // 监听模式配置
  watch: true,

  // 报告器配置
  reporters: ['verbose', 'html'],

  // 输出目录
  outputFile: {
    html: './tests/reports/index.html'
  }
}
